<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>


        /*
            es6 提供了Map数据结构,它类似于对象,也是键值对的集合。但是 键的范围
            不限于字符串,各种类型的值(包括对象)都可以当做键。
            Map也实现了iterator接口,所以可以使用扩展运算符和for...of遍历。

            size:   返回Map的元素个数 
            set:    增加一个新元素,返回当前Map
            get:    返回键名对象的键值
            has:    检测Map中是否包含某个元素,返回boolean值
            clear:  清空集合,返回undefined

        */

        let m = new Map()

        m.set('name', '你好')
        m.set('change', function () {
            console.log('change')
        })
        console.log(m)

        let key = {
            school: '1111'
        }

        m.set(key,['北京','上海','深圳']) // 键是对象key,值是数组
        console.log(m)


        console.log(m.size)
        m.delete('name')

        console.log(m.get('change'))


        // m.clear() // 清空

        for(let v of m) {
            // 每个元素是一个数组,数组第一个是键,第二个是数组
            console.log('v',v)
        }


    </script>
</body>
</html>